home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1996 #15
/
Monster Media Number 15 (Monster Media)(July 1996).ISO
/
prog_gen
/
softl300.zip
/
SOFTOOL.DOC
< prev
next >
Wrap
Text File
|
1996-04-21
|
22KB
|
546 lines
S O F T O O L
v 3.0
Copyright 1994 Vincent Penquerc'h
All Rights Reserved
DISCLAIMER OF WARRANTY
THE AUTHOR WILL REFER TO VINCENT PENQUERC'H.
THE PROGRAM WILL REFER TO SOFTOOL, INCLUDING THE PROGRAM ITSELF, ITS
DOCUMENTATION, AND ANY FILE IN THE ORIGINAL SOFTOOL PACKAGE.
THE AUTHOR HEREBY DISCLAIMS ALL WARRANTIES RELATING TO THIS PROGRAM,
WHENEVER EXPRESSED OR IMPLIED, INCLUDING WITHOUT ANY LIMITATION ANY
IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
THE AUTHOR WILL NOT BE LIABLE FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL,
INDIRECT OR SIMILAR DAMAGES DUE TO LOSS OF DATA, DAMAGE OF HARDWARE OR
ANY OTHER REASON, EVEN IF THE AUTHOR WAS ADVISED OF THE POSSIBILITY OF
SUCH LOSS OR DAMAGE.
THIS PROGRAM AND DOCUMENTATION ARE RELEASED "AS IS" AS SHAREWARE. IT IS
COPYRIGHTED BY THE AUTHOR, AND ALL RIGHTS AND OWNERSHIP ARE KEPT WITH THE
AUTHOR. YOU MAY USE IT, COPY IT, AND GIVE IT TO ANYBODY AS LONG AS NO
MODIFICATIONS ARE MADE.
PROGRAM AND DOCUMENTATION COPYRIGHT 1994 VINCENT 'INDY' PENQUERC'H, ALL
RIGHTS RESERVED.
ALL QUOTED PRODUCT AND COMPANY NAMES ARE TRADEMARKS OF THEIR RESPECTIVE
OWNERS.
TABLE OF CONTENTS
1. What is Softool ?
2. System requirements
3. Using Softool
4. Softool's API
5. Command line options
6. Troubleshooting
7. Contacting the author
8. Revision history
1. What is Softool ?
-----------------
Softool is a resident program that brings programmers helpful assistance
by allowing them to pop up information and tools on various topics a
programmer needs. Softool brings you the following:
- an ASCII table, gives characters and codes in decimal and binary.
- a memory dumper, giving owner of dumped memory, with a string searcher.
- a 32 bit calculator, supporting binary, octal, decimal, hexadecimal.
- an interrupt viewer, with routine addresses and owner.
- a MCB viewer, supporting DOS 4.0 and later sub MCBs.
- a screen ruler, giving screen position, character and attribute.
- a register viewer, giving all registers value at activation.
- a scan code viewer, giving on the fly the scan codes activated.
2. System requirements
-------------------
In order to run Softool, you will need at least a 8088 based
PC, with at least 14 KB of memory, and DOS 2.0 or later. Softool
works with all standard video text modes, and with all card specific
high resolution super VGA modes from which BIOS can obtain number of
columns and number of rows. If Softool works with a 40-column
display, it will leave garbage on the screen and some windows won't
be well drawn, because of the size some windows must have to display
all the information, especially the memory dumper.
3. Using Softool
-------------
Softool is very convenient and intuitive to use. Once Softool is
installed, it can be called with the Alt-S hotkey, or the one you chose
thru the command line. A menu pops up and offers you the choice for
various features. Just choose the one you want. You can press Escape
at any time to exit the window you are in. In scrollable windows, you
may use the Home, End, PageDown, PageUp keys, and the arrow keys to
move. At any moment but in the scan code viewer, you may press F1 to get
an help screen or F5 to view the screen (hide current window) and press
a key to get back to Softool.
The ASCII table window (scrollable):
You can browse all ASCII codes with their corresponding keys. This
table also indicates the symbols associated to these characters in
communications if there are any. This is very helpful, especially
for the box frame characters.
The memory dumper window (scrollable):
The entire memory bank below 1 MB can be browsed there. Three input
fields are avalaible. The first one is an address field where you can
specify the segment or the offset you want to start displaying from
by typing it, using an hexadecimal notation. The backspace key is used
to delete the least significant digit. The two other ones let you type
a string to be searched, in hexadecimal or ASCII notation. Softool
will search for an occurence of the given string beginning at the
current first displayed address whenever you press Enter in one of the
string input fields, the hexadecimal one or the ASCII one. You may
change field by pressing the TAB key. To swap between segment mode and
offset mode, use the shift TAB key combination.
By pressing Ctrl-Enter, you switch between this memory dump mode and
the disassembler mode. The memory contents are disassembled instead
of being displayed as hexadecimal and ASCII.
The Calculator window:
This 32 bit calculator offers you base conversion, with
binary, octal, decimal and hexadecimal bases. With those bases, you
are provided with the following keys:
key operation
+ addition
- substraction
* multiplication
/ division
% modulo
~ not
^ xor
& and
| or
< shift left
> shift right
backspace delete last digit
delete set current number to 0
A three-sign symbol located just under the number remembers you the
current base, and another three-sign symbol indicates the operator
currently used. In case of an overflow, a flag will notice it to you
as well as an error, as dividing something by 0.
You can enter digits with 0-9 and a-f, and delete a digit with the
backspace key. Case is not significant for the hexadecimal letter
digits. The numbers range between 0 and ffffffffh (a 32 bit number, or
an unsigned long (speaking in C)). Just remember to check the current
base if some letters or digits are not accepted by the calculator.
This calculator is intented for programmers and does not accept
parentheses or operator priority. You have to press ENTER each time
you want the result to be displayed. For example, if you enter
7518+3*5, the result will be 15 (3*5), 7518 was deleted by the new
operands 3 and 5. 10 memories are available, associated with the
function keys, from F1 to F10. To save the current number in a memory,
press control and the wanted function key. To load a memory as the
current number, press alt and the wanted function key. Changing base
is done by pressing ALT or CONTROL and the letter key for the selected
base: B for binary, O for octal, D for decimal and H for hexadecimal.
The interrupt viewer window (scrollable):
You can there check all interrupts with their address and their
owner.
The MCB viewer window (scrollable):
All MCBs are displayed, including upper memory ones if upper memory
blocks are supported. The first column is the MCB identificator.
This can be M (this MCB is not the last in the chain) or Z (this is
the last MCB in the chain). DOS 4.0+ extended MCBs are supported.
These extended MCB's bring several more identificators, such as D
(device driver), and others. The second field is the starting
segment of the MCB. The third one is the size in paragraphs of the
allocated memory, and the fourth one is the owner's name.
The screen ruler window:
Lets you move the cursor across the screen, giving you its x and
y coordinates, plus the character code and the attribute under the
cursor. The window moves when you press F6, thus allowing you to
to browse all the screen, including the window itself.
The register viewer window:
All CPU registers (including CS, IP and the flags) are displayed
with the value they had just before Softool was invoked. This allows
simple debugging.
The scan code viewer window:
All keys you press and release produce a scan code. This window
will show you these codes as you use the keybaord. It detects make
and break codes, extended keys and displays the scan code in binary
and hexadecimal.
4. Softool's API
-------------
All my programs use the standard multiplex interrupt as the interface
between them and other programs. All have the same multiplex identifier
to lower the risk of multiplexer conflicts with other programs. This
identifier is 0F4h. They recognize themselves by checking the program
identification register (DX). Softool's ID is 2. Thus, to call Softool,
you have to call int 2Fh with AH=0F4h and DX=2. Here is a list of
services offered by Softool:
0: installation test
1: installation location request
2: activation request
The service code is to be put in AL.
Moreover, Softool can be activated using the INT 3 opcode (breakpoint).
This allows you for easy call, as if you ware calling a debugger.
Here are samples of code in assembler, C and Pascal to call Softool
using the multiplex interrupt API:
Assembly:
mov ax,0f402h
mov dx,2
int 2fh
C:
struct WORDREGS regs;
regs.ax=0xf402;
regs.dx=2;
int86(0x2f,regs,regs);
Pascal:
type Registers=record
case integer of
0:(AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags:word);
1:(AL,AH,BL,BH,CL,CH,DL,DH:byte);
end;
Var Regs:Registers;
Regs.AX=$F402;
Regs.DX=2;
Intr($2F,Regs);
5. Command line options
--------------------
These otpions can be browsed at the DOS command line by typing one of
the following commands:
SOFTOOL -?
SOFTOOL -H
To unload Softool, type:
SOFTOOL -U
To save some memory, you may want to load Softool's 4K screen buffer
in upper memory, by using the 'M' buffer:
SOFTOOL -M
'M' stands for 'Memory'. If you want to change the default hotkey for
enabling and desabling Softool, you may use the 'K' option, as shown
below:
SOFTOOL -K CONTROL ALT SPACEBAR
'K' stands for 'hotKey'. This command line will trigger the enabling
and disabling command whenever you press the given key combination.
This is the template for using this switch. You first give the mask
for the hotkey you want, after the letter 'K'. This mask can be any
combination of the following key names: control, alt, leftshift,
rightshift. You may specify any of them in any order, even none of
them. But beware not being in conflict with another program that
would use the same key combination. If you choose a null mask, that is
if you don't give any of these four symbols, Softool will trigger any
time you press this key, so it is likely to trigger even when you do
not want it, if you are to use this key for another purpose. Giving
one or more mask keys is wise. Once the mask is specified, give the
key you want to trigger Softool. You may give any of the keyboard keys
but the special keys, as the shifts, the scroll lock and num lock
keys, the system request key, the break key, the caps lock key, the
control key or the alt key. If the key you choose does not have an
associated character to be displayed, such as the page up key, or the
escape key, use the following table that gives you the word to use to
designate this key:
Function keys: F1, F2, F3, F4, F5, F6, F7, F8,
F9, F10, F11, F12
Arrow keys: up, down, left, right
Keypad special keys: Keypad/, Keypad*, Keypad-, Keypad+,
Keypad5
Other Keys: backspace, del, end, enter, esc, home,
ins, pgdn, pgup, prtsc, spacebar, tab
Know that some key combinations won't work, as the keyboard does not
always send a scan code for all of them, especially when all the status
keys are pressed at the same time. Case is not important, as Softool
checks for both upper and lower case characters. To select another
language (default is english), you may use the 'L' switch, followed by
the language you want to use:
SOFTOOL -L FRENCH
'L' stands for 'Language'. The supported languages are english, french
and spanish.
To disable help screens, use the 'N' switch:
SOFTOOL -N
The help screens will not be loaded into the resident portion, saving
more than 5 KB of DOS conventional memory for better performance with
other DOS programs.
Softool tests the current video mode for being a text mode or a graphic
mode before activating. It pops up only if the current mode is a text
one. You may force Softool to activate when it thinks to be in a graphic
mode by using the 'T' switch, as follows:
SOFTOOL -T
When specified, softool will skip text mode detection and activate every
time it is requested to pop up. Be warned that if you are in a graphic
mode, Softool will pop up but its windows will be invisible, as it thinks
the current video mode is a text one. You will be able to navigate in
Softool, but you will see nothing. To exit softool, just type ESC until
you get out.
You may enable int 3 call by using the '3' switch:
SOFTOOL -3
This will call Softool each time int 3 (breakpoint) is called. This
allows for easy debugging of your programs, as you can see memory
exactly when you want it: just place a call to int 3 (hex code CC)
where you want Softool to pop up. You then just have to watch your
program's memory and registers as they were when Softool was called.
When you have registered, a personal registration number is sent to
you and can be used to remove the 'Unregistered version' message on
the top of Softool's windows and the first reminder window. To register
your copy of Softool, use the 'R' switch, as follows:
SOFTOOL -R <name>,<number>
Softool will then record your registration and no more display these
reminders.
6. Troubleshooting
---------------
These are some problems you may encounter running Softool, with
explanations and/or ways to prevent these problems. If you have any
problems, read thoroughly this section, you may find the solution.
Q: I get the message 'Error in option ....'.
A: You misused a switch. Check the documentation (this file), chapter
'Command line options'.
Q: I get the message 'Softool is not installed in memory'.
A: You attempted to unload Softool, but no copy of itself was detected
in memory. If there is one, it might be a multiplex conflict. Remove
other resident programs to locate the one creating the conflict. To
avoid such conflicts, all my programs use the same multiplex code
and identify themselves with another code, to reduce the number of
unavalaible multiplex codes.
Q: I get the message 'Softool is already resident in memory'.
A: You attempted to load Softool, but it detected another copy of it
in memory. If there is not one, it might be a multiplexer conflict.
Q: I get the message 'Softool can't be uninstalled ...'
A: You loaded another resident program after Softool, and this program
hooked some of the interrupts Softool hooked before. Softool can't
safely unload itself and will stay in memory to avoid any lockup.
Remove the program you loaded after Softool, remove Softool, then
load your program again.
Q: I get the message 'Couldn't load buffer hi, loading low'.
A: Softool detected an error loading the buffer hi using the 'M' option
and loaded it in conventional memory. Softool will work perfectly
but will use a little more base memory.
Q: Softool beeps when I try to pop it up.
A: Softool detected the current video mode is a graphic one and can't
pop up, as it is only visible in text mode. So Softool beeps but
stays asleep. To activate Softool, just switch to a text mode. If
the mode you are calling softool from is a text mode but is detected
as not being a text mode, you can run Softool with the 'T' switch,
to tell Softool to always activate without testing for the current
video mode being a text mode or not.
7. Contacting the author
---------------------
If you have any bug reports, comments, flames or if you want to
register, feel free to write me at the following email address:
penquerc@enssat.fr
or via snail mail:
Vincent Penquerc'h
3, rue d'Ecosse
35200 Rennes
France
Registering Softool brings you a personal registration number that
removes the 'Unregistered version' title an all Softool windows.
The registration fee for this program is 90 french francs.
Special prices are available for site licenses, see the ORDER.FRM file.
Please note that Softool is shareware and is not free software nor
public domain software. If you use this program after a two week
free evaluation period, please register, so I can continue enhancing
Softool and release other neat programs to meet your needs. Keeping
using Softool after this two week evaluation period without registering
is illegal. Please see included file ORDER.FRM for information about
registering.
8. Revision history
----------------
v3.0 February 11th 1996
- Added the disassembler.
- Added on line help screens (Sorry, no Polish help screens).
- Added the scan code viewer.
- Added software call via multiplex interrupt and int 3.
- Added national characters in french and spanish messages.
- Added new features to the calculator.
- Text mode detection to not pop up while in graphics mode.
- Country detection to select the appropriate language.
- Added window hiding key to view original screen.
v2.0 May 11th 1995
- Added registration key recognition system.
- Added the register viewer.
- Modified calculator to handle 32 bit numbers.
- Added user memories in the calculator.
- Added Polish to supported languages.
- Enhanced the string searching utility in the memory dumper.
- Added HMA detection for memory dumper.
- Added NOT operator in the calculator.
- Added octal column in the ASCII table.
- Added mono display and video page detection when activating.
- Fixed a little bug in calculator display.
v1.41 March 25th 1995 (not released)
- Enhanced memory dumper.
v1.4 September 12th 1994 (not released)
- Added spanish to supported languages.
- Added a string searching utility in the memory dumper.
- Added shift left and right operators to the calculator.
- Reduced resident code memory requirements.
- Hid cursor when resident active.
- Enhanced command line error reporting.
v1.31 August 30th 1994 (not released)
- Fixed a bug in F11 and F12 scanning.
v1.3 August 20th 1994 (not released)
- Added language support, with english and french.
- Installed permanent multiplex interrupt handler.
- Fixed a little bug with the OR operator in the calculator.
- Fixed a small bug in command line parsing.
v1.2 August 8th 1994 (not released)
- Added the screen ruler.
- Fixed a little bug in hotkey selection.
v1.1 August 1st 1994 (not released)
- Allowed hotkey selection.
- Enhanced the memory dumper.
v1.0 July 16th 1994 (not released)
- First version of Softool.